import EventHelper from 'db://cocos-ext/base/EventHelper';
import { lobby, yy } from 'yycore';

import { EVENT_UPDATE_UI_MONEY_LOCK, IMoneyLockParam } from '../CustomEvent';

export default class YYEventExt {

    /**
     * 抛出YY的CustomEvent事件
     * @param eventID 事件ID字符串
     * @param param 事件附带参数数据
     */
    static emitEvent(eventID: string, param?: any) {
        if (!eventID || eventID.length == 0)
            return;
        // UIParam
        const evt = new lobby.events.CustomEvent();
        evt.eventID = eventID;
        evt.param = param;
        // 发送事件
        yy.event.emit(lobby.events.CustomEvent, evt);
    }

    /**
     * UI钱变化事件
     * @param moneyType 货币ID
     * @param isLock true:锁钱；false:解除UI锁;
     * @param amount 钱的变化量 (仅 isLock == false 时有效)
     */
    static changeMoney(moneyType: number, isLock: boolean, amount?: number) {
        const p: IMoneyLockParam = { moneyType, isLock, amount };
        YYEventExt.emitEvent(EVENT_UPDATE_UI_MONEY_LOCK, p);
    }

    /**
     * 播放音效简易接口
     * 需配合AudioComp组件使用，由该组件负责具体实现播放及相关处理
     * @param name 
     * @param isVoice 
     */
    static playAudio(audioName: string, isVoice?: boolean) {
        EventHelper.playAudio(audioName, isVoice);
    }

    /**
     * 播放临时的背景音乐
     * 暂停当前背景音乐，播放指定背景音乐
     * 需配合AudioComp组件使用，由该组件负责具体实现播放及相关处理
     * @param audioName 
     */
    static playBGM(audioName: string) {
        EventHelper.playBGM(audioName);
    }

}
